﻿#pragma once

#include "Containers/SharedObjectPtr.h"
#include "Render/Widget/RenderCharTexture.h"

class RTexture2D;

struct SCharTexture
{
public:
    //字符所在的纹理
    TSharedObjectPtr<RTexture2D> Texture;

    //字符在纹理中的位置
    int32_t X=0;
    int32_t Y=0;

    //字符的在纹理中的宽度,单位像素
    int32_t RawWidth=0;
    //字符的在纹理中的高度,单位像素
    int32_t RawHeight=0;

    //字符在纹理中的偏移量
    int32_t GetDataOffset(int32_t InLineOfChar) const;

    //字符的字体大小
    uint16_t FontSize=0;

    //字符的宽度，单位像素,可能与RawWidth不同，因为字符存在缩放
    int32_t Width=0;
    //字符的高度，单位像素
    int32_t Height=0;

    SRenderCharTexture ToRenderTexture() const;

};
